當單筆資料過多時,會經過正規化分割存在數個表格中,如果想要取回完整料時,就需要透過外建連接,合併後再取回
基本觀念
oracle是透過SELECT...FROM來達成,當FROM子句出現多個資料表或是觀測值時,Oracle會將至些資料表合併,並透過SELECT指定的欄位,從符合的資料列中輸出資料。
SELECT 表1.欄位, 表2.欄位
FROM 表1
[NATURAL JOIN 表2]|
[JOIN 表2 USING (欄位)]|
[JOIN 表2 ON 表1.欄位 = 表2.欄位]|
[LEFT|RIGH|FULL OUTER JOIN 表2
ON 表1.欄位 = 表2.欄位]|[CROSS JOIN 表2]|
[WHERE 表1.欄位 = 表2.欄位]
1.資料表1和資料表2為合併資料表名稱,可用別名簡化
2.[]為合併條件,不會同時出現
自然合併:具有同名同類型的資料欄位以等同匹配運算式進行資料列結合運算方式
SELECT 表1.欄位, 表2.欄位
FROM 表1
NATURAL JOIN 表2
[WHERE 檢索限制條件]
JOIN..USING...:合併兩個資料表中有多個欄位名稱相同,但有些欄位類型不同,可用來指定欄位進行合併
SELECT 表1.欄位, 表2.欄位
FROM 表1
JOIN 表2 USING (欄位)
[WHERE 檢索限制條件]
JOIN...ON...:指定任意比較欄位與比較條件進行資料合併
SELECT 表1.欄位, 表2.欄位
FROM 表1
JOIN 表2 ON (合併比較條件)
[WHERE 檢索限制條件]